package com.yourenbang.lingyun.transaction.web.service.yxy;

import com.alibaba.fastjson.JSONObject;
import com.yourenbang.lingyun.constants.enums.ChannelIdEnums;
import com.yourenbang.lingyun.core.message.Result;
import com.yourenbang.transaction.api.model.vo.pay.PayTransaction;

/**
 * @Description
 * @Date 2021/4/26 15:09
 * @Created by Jason
 */
public interface YxyTradeService {
    /**
     * 保存交易
     */
    PayTransaction saveTrade(PayTransaction payTransaction);


    /**
     * 商户通知
     * @param dto 交易实体
     * @return 保存结果
     */
    Result lakalaMerchantNotice(JSONObject dto);

    /**
     * 商终绑定
     * @param dto 交易实体
     * @return 保存结果
     */
    Result lakalaMerchantBind(JSONObject dto);


    /**
     * 保存拉卡拉交易
     * @param dto 交易实体
     * @return 保存结果
     */
    Result lakalaDealTrade(JSONObject dto);

    /**
     * 更新拉卡拉交易手续费
     * @param dto 交易实体
     * @return 保存结果
     */
    Result updateTradeFee(JSONObject dto);

    /**
     * 更新拉卡拉D0手续费
     * @param dto 交易实体
     * @return 保存结果
     */
    Result updateTradeD0Fee(JSONObject dto);

    /**
     * 更新拉卡拉流量费
     * @param dto 交易实体
     * @return 保存结果
     */
    Result updateTradeIcc(JSONObject dto);

    Result bindAndCreateReward(String merchantNo, String sn, String bindTime, String merchantUserBaseId, Short channelId);

    /**
     * 处理合利宝交易
     */
    Result hlbDealTrade(JSONObject dto);

    /**
     * 中付银盛保存交易
     * @param dto 返回的原始数据
     * @return 保存结果
     */
    Result zfAndYsDealTrade(JSONObject dto);

    Result zfAndYsUpdateTrade(JSONObject jTransaction);

    /**
     * 银多财保存交易
     * @param jTransaction 返回的原始数据
     * @return 保存结果
     */
    Result ydcDealTrade(JSONObject jTransaction);

    Result ydcUpdateTrade(JSONObject jSettle);
}
